package org.dromara.system.domain.bo;

import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 轮询组支付类型关联业务对象 pay_app_types
 *
 * @author Gavino
 * @date 2024-10-22
 */
@Data
public class PayGroupTypeQueryBo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /** api版本 */
    @JsonProperty("version")
    private String version = "v1";

    private Long appId;

    private String country;

    private String email;

    private String ip;

    @NotNull(message = "currency is empty", groups = { AddGroup.class, EditGroup.class })
    private String currency;

    @NotNull(message = "total is empty", groups = { AddGroup.class, EditGroup.class })
    private String total;

    private BigDecimal usdMoney;

    public PayGroupTypeQueryBo() {

    }

    public PayGroupTypeQueryBo(String total, String currency, String country, BigDecimal usdMoney) {
        this.usdMoney = usdMoney;
        this.currency = currency;
        this.total = total;
        this.country = country;
    }

    public PayGroupTypeQueryBo(String total, String currency, String country, String email, BigDecimal usdMoney) {
        this.total = total;
        this.currency = currency;
        this.country = country;
        this.email = email;
        this.usdMoney = usdMoney;
    }
}
